package com.ly.heart.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ly.common.core.domain.BaseVo;
import lombok.Data;
import com.ly.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 金蝶-财务-其他应收单对象 erp_king_invoice_receivable_other_info
 * @author wutao
 * @date 2024-07-19
 */
@TableName ("erp_king_invoice_receivable_other_info")
@ApiModel (value = "erp_king_invoice_receivable_other_info对象", description = "金蝶-财务-其他应收单")
@Data
public class KingInvoiceReceivableOtherEntity extends BaseVo {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId (value = "id", type = IdType.INPUT)
    private String id;

    /**
     * 所属公司，当前登录公司
     */
    @ApiModelProperty ("所属公司，当前登录公司")
    @TableField ("dept_id")
    @Excel (name = "所属公司，当前登录公司")
    private String deptId;

    /**
     * 单据类型
     */
    @ApiModelProperty ("单据类型")
    @TableField ("doc_type_code")
    @Excel (name = "单据类型")
    private String docTypeCode;

    /**
     * 往来单位类型
     * 供应商：BD_Supplier;
     * 客户：BD_Customer;
     * 员工：BD_Empinfo;
     * 部门：BD_Department;
     * 其他往来单位：FIN_OTHERS
     */
    @ApiModelProperty ("往来单位类型" +
            "供应商：BD_Supplier;" +
            "客户：BD_Customer;" +
            "员工：BD_Empinfo;" +
            "部门：BD_Department;" +
            "其他往来单位：FIN_OTHERS")
    @TableField ("transaction_company_type")
    @Excel (name = "往来单位类型")
    private String transactionCompanyType;

    /**
     * 结算组织Id,当前登录公司
     */
    @ApiModelProperty ("结算组织Id,当前登录公司")
    @TableField ("settlement_dept_id")
    @Excel (name = "结算组织Id,当前登录公司")
    private String settlementDeptId;

    /**
     * 是否按费用项目明细收款;1:是;2:否
     */
    @ApiModelProperty ("是否按费用项目明细收款;1:是;2:否")
    @TableField ("is_project_detail_receipt")
    @Excel (name = "是否按费用项目明细收款;1:是;2:否")
    private Boolean isProjectDetailReceipt;

    /**
     * 往来单位,接口
     */
    @ApiModelProperty ("往来单位,接口")
    @TableField ("transaction_company_id")
    @Excel (name = "往来单位,接口")
    private String transactionCompanyId;

    /**
     * 收款组织,当前登录公司
     */
    @ApiModelProperty ("收款组织,当前登录公司")
    @TableField ("receipt_dept_id")
    @Excel (name = "收款组织,当前登录公司")
    private String receiptDeptId;

    /**
     * 单据编号
     */
    @ApiModelProperty ("单据编号")
    @TableField ("doc_no")
    @Excel (name = "单据编号")
    private String docNo;

    /**
     * 币别,接口
     */
    @ApiModelProperty ("币别,接口")
    @TableField ("king_base_currency_code")
    @Excel (name = "币别,接口")
    private String kingBaseCurrencyCode;

    /**
     * 销售组织,当前登录公司
     */
    @ApiModelProperty ("销售组织,当前登录公司")
    @TableField ("sale_company_id")
    @Excel (name = "销售组织,当前登录公司")
    private String saleCompanyId;

    /**
     * 业务时间
     */
    @ApiModelProperty ("业务时间")
    @TableField ("biz_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "业务时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date bizTime;

    /**
     * 总金额=其他应收单明细总金额
     */
    @ApiModelProperty ("总金额=其他应收单明细总金额")
    @TableField ("total_amount")
    @Excel (name = "总金额=其他应收单明细总金额")
    private String totalAmount;

    /**
     * 销售部门
     */
    @ApiModelProperty ("销售部门")
    @TableField ("sale_dept_id")
    @Excel (name = "销售部门")
    private String saleDeptId;

    @ApiModelProperty ("销售员")
    @TableField ("sale_user_id")
    @Excel (name = "销售员")
    private String saleUserId;

    /**
     * 到期日
     */
    @ApiModelProperty ("到期日")
    @TableField ("due_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "到期日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dueTime;

    /**
     * 申请部门,接口
     */
    @ApiModelProperty ("申请部门,接口")
    @TableField ("apply_dept_id")
    @Excel (name = "申请部门,接口")
    private String applyDeptId;

    /**
     * 到期日计算日期
     */
    @ApiModelProperty ("到期日计算日期")
    @TableField ("due_cla_time")
    @JsonFormat (pattern = "yyyy-MM-dd")
    @Excel (name = "到期日计算日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dueClaTime;

    /**
     * 汇率类型
     */
    @ApiModelProperty ("汇率类型")
    @TableField ("rate_type_id")
    @Excel (name = "汇率类型")
    private String rateTypeId;

    @ApiModelProperty ("汇率")
    @TableField ("rate")
    private String rate;

    /**
     * 源单类型;1:手工新增;2:应收票据背书;3:应收票据背书退回
     */
    @ApiModelProperty ("源单类型;1:手工新增;2:应收票据背书;3:应收票据背书退回;4:应收票据退票")
    @TableField ("source_type")
    @Excel (name = "源单类型;1:手工新增;2:应收票据背书;3:应收票据背书退回;4:应收票据退票")
    private Integer sourceType;

    @ApiModelProperty ("收款条件编码")
    @TableField ("pay_condition_code")
    @Excel (name = "收款条件编码")
    private String payConditionCode;

    @ApiModelProperty ("结算方式编码")
    @TableField ("settlement_type_code")
    @Excel (name = "结算方式编码")
    private String settlementTypeCode;

    @ApiModelProperty ("总金额本位币")
    @TableField ("total_amount_currency")
    @Excel (name = "总金额本位币")
    private String totalAmountCurrency;

    @ApiModelProperty ("税额本位币")
    @TableField ("rate_amount_currency")
    @Excel (name = "税额本位币")
    private String rateAmountCurrency;

    @ApiModelProperty ("不含税金额本位币")
    @TableField ("not_tax_amount_currency")
    @Excel (name = "不含税金额本位币")
    private String notTaxAmountCurrency;

    @TableField ("remarks")
    private String remarks;

    @ApiModelProperty ("流程实例id")
    @TableField ("instance_id")
    private String instanceId;

    @TableField ("state")
    private String state;

    @ApiModelProperty ("创建人")
    @TableField ("create_by")
    private String createBy;

    @ApiModelProperty ("创建时间")
    @TableField ("create_time")
    private Date createTime;

    @ApiModelProperty ("更新人")
    @TableField ("update_by")
    private String updateBy;

    @ApiModelProperty ("更新时间")
    @TableField ("update_time")
    private Date updateTime;

    @ApiModelProperty ("推送")
    @TableField ("is_send")
    private Integer isSend;

    @ApiModelProperty ("是否可用")
    @TableField ("is_used")
    @Excel (name = "是否可用")
    private Integer isUsed;

    @ApiModelProperty ("业务type")
    @TableField (exist = false)
    private String businessType;

    @ApiModelProperty ("流程模型id")
    @TableField (exist = false)
    private String modelId;

    @ApiModelProperty ("币别")
    @TableField (exist = false)
    private String kingBaseCurrencyName;

    @ApiModelProperty ("结算组织")
    @TableField (exist = false)
    private String settlementDeptName;

    @ApiModelProperty ("收款组织")
    @TableField (exist = false)
    private String receiptDeptName;

    @ApiModelProperty ("销售组织")
    @TableField (exist = false)
    private String saleCompanyName;

    @ApiModelProperty ("销售部门名称")
    @TableField (exist = false)
    private String saleDeptName;

    @ApiModelProperty ("申请部门")
    @TableField (exist = false)
    private String applyDeptName;

    @ApiModelProperty ("收款条件名称")
    @TableField (exist = false)
    private String payConditionName;

    @ApiModelProperty ("结算方式名称")
    @TableField (exist = false)
    private String settlementTypeName;

    @ApiModelProperty ("销售员")
    @TableField (exist = false)
    private String saleUserName;

    @ApiModelProperty ("创建人")
    @TableField (exist = false)
    private String createUser;

    @ApiModelProperty ("往来单位名称")
    @TableField (exist = false)
    private String transactionCompanyName;


    //--------明细行数据
    @ApiModelProperty ( "明细行主键Id" )
    @TableField ( exist = false )
    private String sourceDetailId;

    @ApiModelProperty ( "费用项目编码编码" )
    @TableField ( exist = false )
    private String feeCode;

    @ApiModelProperty ( "费用承担部门编码" )
    @TableField ( exist = false )
    private String feeBearDeptCode;

    @ApiModelProperty ( "费用项目编码名称" )
    @TableField ( exist = false )
    private String feeName;

    @ApiModelProperty ( "费用承担部门名称" )
    @TableField ( exist = false )
    private String feeBearDeptName;

    @ApiModelProperty ( "明细行税率" )
    @TableField ( exist = false )
    private String detailTaxRate;

    @ApiModelProperty ( "明细行不含税金额" )
    @TableField ( exist = false )
    private String detailNoTaxAmount;

    @ApiModelProperty ( "明细行税额" )
    @TableField ( exist = false )
    private String detailTaxAmount;

    @ApiModelProperty ( "明细行总金额" )
    @TableField ( exist = false )
    private String detailTotalAmount;

    @ApiModelProperty ( "明细行备注" )
    @TableField ( exist = false )
    private String detailRemarks;

    @ApiModelProperty ( "明细行源单类型" )
    @TableField ( exist = false )
    private String detailSourceDocType;

    @ApiModelProperty ( "明细行源单编号" )
    @TableField ( exist = false )
    private String detailSourceDocNo;

    /**
     * -----------------------------------------------
     * 以下为推送金蝶
     */
    @ApiModelProperty ("结算组织编码，送金蝶")
    private String settleDeptCode;

    @ApiModelProperty ("收款组织编码，送金蝶")
    private String receiptDeptCode;

    @ApiModelProperty ("销售组织编码，送金蝶")
    private String saleCompanyCode;

    @ApiModelProperty ("销售部门编码，送金蝶")
    private String saleDeptCode;

    @ApiModelProperty ("申请部门编码，送金蝶")
    private String applyDeptCode;

    @ApiModelProperty ("销售员编码，送金蝶")
    private String saleUserCode;

}
